#pragma once

#include "NextAlgo.h"
#include "Parser.h"
#include "Writer.h"
#include "CostAlgo.h"
#include "OptimalAlgo.h"

class SystemRecommendation
{

public:
	SystemRecommendation();
	~SystemRecommendation();

	double RunNext(SystemView* sys, Writer* writer, Parser* parser);		// returns total damage
	double RunCost(SystemView* sys, Writer* writer, Parser* parser);		// returns total damage
	double RunOptimal(SystemView* sys, Writer* writer, Parser* parser);		// returns total damage

	void First_Next(SystemView* sys, Writer* writer, Parser* parser);
	void First_Cost(SystemView* sys, Writer* writer, Parser* parser);
	void First_Optimal(SystemView* sys, Writer* writer, Parser* parser);

	/* input: max cost customer wants to spend on the system,
	 *		  total number of SATA devices required, 
	 *        algorithm to run: 1=Optimal 2=Next 3=Cost
	 *        dataFiles to run algorithm on
	 * output: [nof_SSD, nof_FC, nof_SATA]
	 */
	int* ChooseBest(int system_cost, int nof_SATA, Parser* parser, SystemView* sys, Writer* writer);	
};

